A sparse matrix is a matrix populated primarily with zeros. Sparse matrix multiplication is a useful tool in many computing applications. For example, in the context of graphics processing, it is often useful to multiply a sparse matrix by a dense vector, such as when implementing iterative solvers for systems of linear equations. In these cases, reduction operations are useful for performing such multiplications.
Applications such as sparse matrix-vector multiplication implemented using reduction operations are often difficult to map to data-parallel machines (e.g. graphics processing units, etc.) because of the unequal workload distribution caused when mapping rows of the matrix onto processing elements. There is thus a need for addressing these and/or other issues associated with the prior art.